﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;

namespace Aleator.Core
{
    /// <summary>
    /// Abstraction of progression factory
    /// </summary>
    abstract public class ProgressionFactory
    {
        /// <summary>
        /// Create a progression
        /// </summary>
        /// <param name="composition">Composition this progression exists within</param>
        /// <param name="comp">XML node for the parent composition</param>
        /// <param name="prog">XML node fot the progression</param>
        /// <returns></returns>
        public abstract Progression GetProgression(Composition composition, XmlNode comp, XmlNode prog);
    }
}
